<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>数组的方法</title>
  </head>
  <body></body>
</html>
<script>

// 1.数组去重
let arr = [1, 2, 3, 2, 4, 5, 3, 6, 7, 8, 9, 1, 2, 3];
  let newArr = [...new Set(arr)];
  console.log(newArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9]

    // 2.数组排序
    let arr1 = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
  arr1.sort((a, b) => a - b);
  console.log(arr1); // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

  // 3.数组的一些应用
  // 3.1 数组的遍历
  let arr2 = [1, 2, 3, 4, 5];
  for (let i = 0; i < arr2.length; i++) {
    console.log(arr2[i]);
  }

    // 3.2 数组的map方法
    let arr3 = [1, 2, 3, 4, 5];
  let newArr3 = arr3.map((item) => item * 2);
  console.log(newArr3); // [2, 4, 6, 8, 10]

    // 3.3 数组的filter方法
    let arr4 = [1, 2, 3, 4, 5];
  let newArr4 = arr4.filter((item) => item > 3);
  console.log(newArr4); // [4, 5]

    // 3.4 数组的reduce方法
    let arr5 = [1, 2, 3, 4, 5];
  let sum = arr5.reduce((acc, cur) => acc + cur, 0);
  console.log(sum); // 15

  
  // 3.5 数组的find方法
  let arr6 = [1, 2, 3, 4, 5];
  let findNum = arr6.find((item) => item > 3);
  console.log(findNum); // 4

    // 3.6 数组的findIndex方法
    let arr7 = [1, 2, 3, 4, 5];
  let findIndex = arr7.findIndex((item) => item > 3);
  console.log(findIndex); // 3

    // 3.7 数组的includes方法
    let arr8 = [1, 2, 3, 4, 5];
  let includesNum = arr8.includes(3);
  console.log(includesNum); // true

    // 3.8 数组的join方法
    let arr9 = [1, 2, 3, 4, 5];
  let joinStr = arr9.join("-");
  console.log(joinStr); // "1-2-3-4-5"

    // 3.9 数组的toString方法
    let arr10 = [1, 2, 3, 4, 5];
  let toStringStr = arr10.toString();
  console.log(toStringStr); // "1,2,3,4,5"

  // 3.10 数组的toLocaleString方法
  let arr11 = [1000, 2000, 3000];
  let toLocaleStringStr = arr11.toLocaleString();
  console.log(toLocaleStringStr); // "1,000"

    // 3.11 数组的flat方法
    let arr12 = [1, [2, 3], [4, [5, 6]]];
  let flatArr = arr12.flat();
  console.log(flatArr); // [1, 2, 3, 4, 5, 6]

  // 3.12 数组的flatMap方法
  let arr13 = [1, 2, 3, 4, 5];
  let flatMapArr = arr13.flatMap((item) => [item, item * 2]);
  console.log(flatMapArr); // [1, 2, 2, 4, 3, 6, 4, 8, 5, 10]

    // 3.13 数组的keys方法
    let arr14 = [1, 2, 3, 4, 5];
  let keysArr = [...arr14.keys()];
  console.log(keysArr); // [0, 1, 2, 3, 4]

   // 3.14 数组的values方法
   let arr15 = [1, 2, 3, 4, 5];
  let valuesArr = [...arr15.values()];
  console.log(valuesArr); // [1, 2, 3, 4, 5]

  // 3.15 数组的entries方法
  let arr16 = [1, 2, 3, 4, 5];
  let entriesArr = [...arr16.entries()];
  console.log(entriesArr); // [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]]

    // 3.16 数组的copyWithin方法
    let arr17 = [1, 2, 3, 4, 5];
  arr17.copyWithin(0, 3);
  console.log(arr17); // [4, 5, 3, 4, 5]

  // 3.17 数组的fill方法
  let arr18 = [1, 2, 3, 4, 5];
  arr18.fill(0, 2, 4);
  console.log(arr18); // [1, 2, 0, 0, 5]

    // 3.18 数组的pop方法
    let arr19 = [1, 2, 3, 4, 5];
  arr19.pop();
  console.log(arr19); // [1, 2, 3, 4]

    // 3.19 数组的push方法
    let arr20 = [1, 2, 3, 4, 5];
  arr20.push(6, 7, 8);
  console.log(arr20); // [1, 2, 3, 4, 5, 6, 7, 8]

    // 3.20 数组的reverse方法
    let arr21 = [1, 2, 3, 4, 5];
  arr21.reverse();
  console.log(arr21); // [5, 4, 3, 2, 1]

  // 3.21 数组的shift方法
  let arr22 = [1, 2, 3, 4, 5];
  arr22.shift();
  console.log(arr22); // [2, 3, 4, 5]



  // 3.22 数组的unshift方法
  let arr23 = [1, 2, 3, 4, 5];
  arr23.unshift(0, -1);
  console.log(arr23); // [-1, 0, 1, 2, 3, 4, 5]

  // 3.23 数组的splice方法
  let arr24 = [1, 2, 3, 4, 5];
  arr24.splice(2, 1, 6, 7);
  console.log(arr24); // [1, 2, 6, 7, 4, 5]

    // 3.24 数组的slice方法
    let arr25 = [1, 2, 3, 4, 5];
  let sliceArr = arr25.slice(2, 4);
  console.log(sliceArr); // [3, 4]

  // 3.25 数组的some方法
  let arr26 = [1, 2, 3, 4, 5];
  let someArr = arr26.some((item) => item > 3);
  console.log(someArr); // true

 // 3.26 数组的every方法
 let arr27 = [1, 2, 3, 4, 5];
  let everyArr = arr27.every((item) => item > 0);
  console.log(everyArr); // true

  // 3.27 数组的lastIndexOf方法
  let arr28 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
  let lastIndexOfArr = arr28.lastIndexOf(3);
  console.log(lastIndexOfArr); // 6

  // 3.28 数组的findIndex方法
  let arr29 = [1, 2, 3, 4, 5, 4, 3, 2, 1];
  let findIndexArr = arr29.findIndex((item) => item > 3);
  console.log(findIndexArr); // 3

  // 3.29 数组的fill方法
  let arr30 = [1, 2, 3, 4, 5];
  arr30.fill(0, 2, 4);
  console.log(arr30); // [1, 2, 0, 0, 5]

  // 3.30 数组的includes方法
  let arr31 = [1, 2, 3, 4, 5];
  let includesArr = arr31.includes(3);
  console.log(includesArr); // true



  // 3.31 数组的join方法
  let arr32 = [1, 2, 3, 4, 5];
  let joinArr = arr32.join("-");
  console.log(joinArr); // "1-2-3-4-5"

  // 3.32 数组的toString方法
  let arr33 = [1, 2, 3, 4, 5];
  let toStringArr = arr33.toString();
  console.log(toStringArr); // "1,2,3,4,5"

  // 3.33 数组的toLocaleString方法
  let arr34 = [1000, 2000, 3000];
  let toLocaleStringArr = arr34.toLocaleString();
  console.log(toLocaleStringArr); // "1,000"

  // 3.34 数组的flat方法
  let arr35 = [1, [2, 3], [4, [5, 6]]];
  let flatArr = arr35.flat();
  console.log(flatArr); // [1, 2, 3, 4, 5, 6]

  // 3.35 数组的flatMap方法
  let arr36 = [1, 2, 3, 4, 5];
  let flatMapArr = arr36.flatMap((item) => [item, item * 2]);
  console.log(flatMapArr); // [1, 2, 2, 4, 3, 6, 4, 8, 5, 10]



   // 3.36 数组的keys方法
   let arr37 = [1, 2, 3, 4, 5];
  let keysArr = [...arr37.keys()];
  console.log(keysArr); // [0, 1, 2, 3, 4]

  // 3.37 数组的values方法
  let arr38 = [1, 2, 3, 4, 5];
  let valuesArr = [...arr38.values()];
  console.log(valuesArr); // [1, 2, 3, 4, 5]

  // 3.38 数组的entries方法
  let arr39 = [1, 2, 3, 4, 5];
  let entriesArr = [...arr39.entries()];
  console.log(entriesArr); // [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]]

  // 3.39 数组的copyWithin方法
  let arr40 = [1, 2, 3, 4, 5];
  arr40.copyWithin(0, 3);
  console.log(arr40); // [4, 5, 3, 4, 5]

  // 3.40 数组的fill方法
  let arr41 = [1, 2, 3, 4, 5];
  arr41.fill(0, 2, 4);
  console.log(arr41); // [1, 2, 0, 0, 5]

// 3.41 数组的pop方法
let arr42 = [1, 2, 3, 4, 5];
  arr42.pop();
  console.log(arr42); // [1, 2, 3, 4]

  // 3.42 数组的push方法
  let arr43 = [1, 2, 3, 4, 5];
  arr43.push(6, 7, 8);
  console.log(arr43); // [1, 2, 3, 4, 5, 6, 7, 8]

  
</script>
